# -*- mode: snippet; coding: utf-8 -*-
# name: define a function
# key: def
# --
def ${1:name}($2):
${2:$(let* ((indent
             (concat "\n" (make-string (current-column) 32)))
            (args
             (mapconcat
              '(lambda (x)
                 (if (not (string= (nth 0 x) ""))
                     (concat "@arg " (char-to-string 96) (nth 0 x)
                             (char-to-string 96) ":")))
              (mapcar
               '(lambda (x)
                  (mapcar
                   '(lambda (x)
                      (replace-regexp-in-string "[[:blank:]]*$" ""
                                                (replace-regexp-in-string "^[[:blank:]]*" "" x)))
                   x))
               (mapcar '(lambda (x) (split-string x "="))
                       (split-string text ",")))
              indent))
            (ret "@return "))
       (unless (string= args "")
         (mapconcat
          'identity
          (list (make-string 3 34) args (make-string 3 34) "")
          indent)))
    }$0
